package com.tiancheng.trade.authserver.dto;

import jakarta.validation.constraints.NotBlank;
import jakarta.validation.constraints.NotNull;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;

@Getter
@Setter
@Accessors(chain = true)
public class AccessTokenRequestDTO {
    /**
     * code
     */
    @NotBlank(message = "code can not be null")
    private String code;
    /**
     * 重定向地址
     */
    @NotBlank(message = "redirect_uri can not be null")
    private String redirect_uri;
    /**
     * 授权域
     */
    @NotNull(message = "scope can not be null")
    private String scope;
    /**
     * <p>授权模式</p><br/>
     * 授权码模式（Authorization Code）(正统方式)(支持refresh token)<br/>
     * 授权码简化模式（Implicit）(为web浏览器设计)(不支持refresh token)<br/>
     * Pwd模式（Resource Owner Password Credentials） (基本不用)(支持refresh token)<br/>
     * Client模式（Client Credentials） (为后台api调用设计)(不支持refresh token)<br/>
     * 扩展模式（Extension）（自定义模式，这个就不介绍了）<br/>
     */
    @NotBlank(message = "grant_type can not be null")
    private String grant_type;
    /**
     * 授权应用client_id
     */
    @NotBlank(message = "client_id can not be null")
    private String client_id;
    /**
     * 授权应用client_secret
     */
    @NotBlank(message = "client_secret can not be null")
    private String client_secret;
}
